Loading [MathJax]/jax/output/CommonHTML/jax.js

Data Transformation Techniques (Normalization, Standardization)

Machine Learning - পাইথন ডেটা সায়েন্স (Python Data Science) Data Cleaning এবং Preprocessing |
196
196

ডেটা ট্রান্সফর্মেশন টেকনিক, যেমন Normalization এবং Standardization, মেশিন লার্নিং মডেল এবং স্ট্যাটিস্টিক্যাল বিশ্লেষণের জন্য ডেটা প্রস্তুত করার ক্ষেত্রে গুরুত্বপূর্ণ। এই দুইটি পদ্ধতি ডেটাকে স্কেল করে সমান আকারে আনার জন্য ব্যবহৃত হয়, তবে এদের পদ্ধতি এবং ফলাফল আলাদা।

১. Normalization (Min-Max Scaling)

Normalization, যা Min-Max scaling নামেও পরিচিত, ডেটাকে একটি নির্দিষ্ট সীমায়, সাধারণত [0, 1] অথবা [-1, 1] রেঞ্জে স্কেল করার প্রক্রিয়া। এটি তখন ব্যবহৃত হয় যখন ডেটার বণ্টন গাউসিয়ান (normal distribution) নয় বা যখন মডেলটি ডেটার পরিমাণের প্রতি সংবেদনশীল (যেমন k-nearest neighbors, neural networks ইত্যাদি)।

Normalization এর সূত্র:

Min-Max স্কেলিংয়ের সূত্র হল:

Normalized value=XXminXmaxXmin

এখানে:

  • X হল মূল ডেটা পয়েন্ট।
  • Xmin এবং Xmax হল ফিচারের ন্যূনতম এবং সর্বাধিক মান।

উদাহরণ:

ধরা যাক ডেটা:

Data=[2,4,6,8,10]

  • ন্যূনতম মান Xmin=2
  • সর্বাধিক মান Xmax=10

যদি X=6 কে নরমালাইজ করতে হয়:

Normalized=62102=48=0.5

কবে Normalization ব্যবহার করবেন:

  • যখন ফিচারের ইউনিটগুলি আলাদা থাকে (যেমন, বছর হিসেবে বয়স, ডলারে বেতন ইত্যাদি)।
  • যখন ডেটাকে একটি নির্দিষ্ট সীমায় [0, 1] রাখতে চান।
  • যখন এমন অ্যালগরিদম ব্যবহার করছেন যা ডেটার পরিমাণের প্রতি সংবেদনশীল, যেমন নিউরাল নেটওয়ার্ক, k-NN ইত্যাদি।

২. Standardization (Z-Score Normalization)

Standardization, যা Z-score normalization নামেও পরিচিত, ডেটাকে এমনভাবে স্কেল করে যাতে এর গড় মান 0 এবং স্ট্যান্ডার্ড ডিভিয়েশন 1 হয়। Standardization কোনও নির্দিষ্ট সীমায় ডেটা বাউন্ড না করলেও এটি ডেটাকে কেন্দ্রিত করে এবং স্কেল করে দেয়। এটি মূলত তখন ব্যবহৃত হয় যখন ডেটা গাউসিয়ান (normal) বণ্টন অনুসরণ করে অথবা যখন অ্যালগরিদমে বৈশিষ্ট্যের বৈচিত্র্য গুরুত্বপূর্ণ।

Standardization এর সূত্র:

Standardization এর সূত্র হল:

Standardized value=Xμσ

এখানে:

  • X হল মূল ডেটা পয়েন্ট।
  • μ হল ফিচারের গড় মান।
  • σ হল ফিচারের স্ট্যান্ডার্ড ডিভিয়েশন।

উদাহরণ:

ধরা যাক ডেটা:

Data=[2,4,6,8,10]

  • গড় মান μ=2+4+6+8+105=6
  • স্ট্যান্ডার্ড ডিভিয়েশন σ=(26)2+(46)2+(66)2+(86)2+(106)25=2.83

যদি X=6 কে স্ট্যান্ডারাইজ করতে হয়:

Standardized=662.83=0

কবে Standardization ব্যবহার করবেন:

  • যখন ডেটা গাউসিয়ান (normal) বণ্টন অনুসরণ করে অথবা যদি ডেটার গড় এবং স্ট্যান্ডার্ড ডিভিয়েশন গুরুত্বপূর্ণ হয়।
  • যখন ডেটাকে গড় 0 এবং স্ট্যান্ডার্ড ডিভিয়েশন 1 এর সাথে স্কেল করতে চান।
  • এমন অ্যালগরিদমে ব্যবহার করুন যা বৈশিষ্ট্যের বৈচিত্র্য বা গড়কে গুরুত্ব দেয়, যেমন লিনিয়ার রিগ্রেশন, লজিস্টিক রিগ্রেশন, SVM ইত্যাদি।

Normalization এবং Standardization এর মধ্যে পার্থক্য

দিকNormalization (Min-Max Scaling)Standardization (Z-Score Normalization)
সূত্রXXminXmaxXminXμσ
রেঞ্জনির্দিষ্ট রেঞ্জে স্কেল (সাধারণত [0, 1] অথবা [-1, 1])ডেটার গড় 0 এবং স্ট্যান্ডার্ড ডিভিয়েশন 1 হয়, তবে রেঞ্জ সীমাবদ্ধ নয়
প্রভাবআউটলাইয়ারদের ওপর সংবেদনশীল (কারণ মিন এবং ম্যাক্সে প্রভাবিত হতে পারে)আউটলাইয়ারদের ওপর কম প্রভাবিত, তবে কিছুটা প্রভাব থাকে
ব্যবহারযখন জানি যে ডেটার একটি নির্দিষ্ট সীমা আছে অথবা ডেটা গাউসিয়ান নয়যখন ডেটা গাউসিয়ান (normal) বণ্টন অনুসরণ করে বা গড় ও স্ট্যান্ডার্ড ডিভিয়েশন গুরুত্বপূর্ণ
অ্যালগরিদমk-NN, নিউরাল নেটওয়ার্ক, ডিপ লার্নিংলিনিয়ার রিগ্রেশন, লজিস্টিক রিগ্রেশন, PCA, SVM

Practical Considerations

  • Normalization সাধারণত তখন ব্যবহার করা হয় যখন ডেটার ইউনিট বা স্কেল আলাদা থাকে, যেমন বয়স এবং বেতন বিভিন্ন ইউনিটে থাকে। এটি তখন ব্যবহৃত হয় যখন এমন অ্যালগরিদম ব্যবহার করতে হয় যা ডেটার পরিমাণের প্রতি সংবেদনশীল (যেমন k-NN, নিউরাল নেটওয়ার্ক)।
  • Standardization তখন ব্যবহৃত হয় যখন ডেটা গাউসিয়ান (normal) বণ্টন অনুসরণ করে অথবা যখন অ্যালগরিদম ডেটার বৈচিত্র্য (variance) বা গড় (mean) গুরুত্ব দেয়।

Python Implementation

Normalization (Min-Max Scaling):

from sklearn.preprocessing import MinMaxScaler

# Sample data
data = [[2], [4], [6], [8], [10]]

# Create a MinMaxScaler object
scaler = MinMaxScaler()

# Fit and transform the data
normalized_data = scaler.fit_transform(data)

print(normalized_data)

Standardization (Z-Score Normalization):

from sklearn.preprocessing import StandardScaler

# Sample data
data = [[2], [4], [6], [8], [10]]

# Create a StandardScaler object
scaler = StandardScaler()

# Fit and transform the data
standardized_data = scaler.fit_transform(data)

print(standardized_data)

সারাংশ

Normalization এবং Standardization হল গুরুত্বপূর্ণ ডেটা ট্রান্সফর্মেশন টেকনিক, যা ডেটাকে স্কেল করার জন্য ব্যবহৃত হয়। Normalization ব্যবহার করা হয় যখন ডেটার স্কেল আলাদা থাকে এবং আপনি একে নির্দিষ্ট সীমায় (যেমন [0, 1]) আনার জন্য চান। Standardization ব্যবহৃত হয় যখন ডেটা গাউসিয়ান (normal) বণ্টন অনুসরণ করে এবং আপনি ডেটাকে গড় 0 এবং স্ট্যান্ডার্ড ডিভিয়েশন 1 এ আনতে চান। কোন পদ্ধতি ব্যবহার করবেন তা নির্ভর করে আপনার ডেটার প্রকৃতি এবং ব্যবহৃত অ্যালগরিদমের উপর।

Content added By
Promotion